This invention is related to Internet media appliances or servers characterized by ease of use and low cost of administration.
A typical networking appliance product, which might or might not have a keyboard or monitor and which might not yet have been configured except for some factory standard material incorporated into it, must boot when installed into a local area network, and then a person near that appliance can configure the appliance by filling out forms or typing in parameters into screens or into a terminal. Alternatively, the appliance, when it is turned on, might send a message out on a local area network asking for any machine in the environment to tell it everything it needs to know in order to be useful, and if there is a boot server configured on the local area network, it will respond to the appliance by giving it some pre-configured information that will help the appliance configure itself. The information required by the appliance might include the name of the appliance, the network address of the appliance, and possibly the pieces of software to be installed in the appliance.
Thus, known techniques for initializing the network parts of an operating system or appliance can employ the receipt by the machine of packets on a local network. According to certain protocols, a certain kind of message is sent into the local area network to see whether a response is received. from a particular kind of server in the local area network. A machine that is in the process of booting might broadcast a boot request packet into the local area network, so that the request could be seen by any computer attached to the immediate local area network (but not by far-away computers).
This well-known technology has been used by many people, companies, and organizations for computers that are booting, even for simple things such as sending network configuration information to a user""s personal computer. When a personal computer on a local area network boots up, one of the first things that it might do is to send out a DHCP request message or a boot request message, and a DHCP server or boot server on the local area network, configured by an information systems department, will reply to that request and authoritatively tell the personal computer its network configuration and a set of network parameters to use. This common technique for booting machines that require assistance in booting was employed by Sun Microsystems""s network workstations during the mid 1980""s.
Today, it is quite common for computers in large organizations to be configured so that they will broadcast a specific kind of request in the form of a packet when they are booting to obtain some kind of network configuration information. More specifically, according to a normal protocol for booting an appliance, the appliance, upon booting, uses software to broadcast a message in order to attempt to obtain network configurations and possibly other information required by the appliance. The appliance broadcasts a packet, which may be a bootp (booting protocol) request or a DHCP (dynamic host configuration protocol) request, using well-known technologies (DHCP is a protocol designed for configuring hosts dynamically, which means that the configuration of the host is not stored on that host or appliance itself, but rather is obtained dynamically by sending the DHCP request to a boot server and receiving a response). The appliance receives in response a short message that has a table of settings that include several parameters such as, for example, the IP address of a gateway or router to use when sending packets to far-away places, an IP address to be used as the address of the computer itself, an IP address to be used for sending messages to a web proxy server or HTTP proxy server, addresses of computers that provide naming services (so-called domain name servers), and a bit field that is used as a network mask (which helps indicate to the routing computer which set of addresses are addresses of locally connected computers, thereby allowing the routing computer to distinguish them from addresses of far-away computers). These five or six pieces of information can go a long way in configuring the network communication part of the software on the appliance. This is well-known technology. For example, in every Microsoft Windows 95, 98 or Windows NT computer there is an option in the network control panel that allows a user, rather than specifying the IP address of the computer manually by typing into a box, to tell the computer using a dialog check box that every time it boots it should broadcast a message and try to obtain the IP address from a DHCP server. NT servers are provided with a built-in DHCP server that can provide this IP address to other computers upon request.
There are also products being sold into business locations or office environments that, instead of being configured by a boot server, can be configured by a person with a computer such as a laptop that is attached through some kind of cable to configure the appliance. Other products can be configured through the use of an LCD panel and buttons. For example, a printer or a photocopying machine, when it is booted up, might display a small message on a screen saying that the user must proceed through menus and select certain options for printer or copier. Similarly, a telefacsimile machine might require a user to set the phone number and the number of rings after which the telefacsimile machine will auto-answer. These configurations are done by a knowledgeable person, and the configuration settings are typically stored within the product itself. If a printer, photocopying machine, or telefacsimile machine is damaged and needs to be replaced, it will be necessary for a knowledgeable person to configure a new machine.
Similarly, certain Internet-connecting network products, of which there are many today, use roughly the same kind of style of configuration as the above-mentioned machines. A user purchases a product that is intended to be connected to a local network. The user connects the product to the local network and interacts with the network product to tell it its configuration. The configuration is stored on the network product itself, and if it is ever necessary to replace the network product, it will be necessary for someone (typically a system administrator) to configure the new network product.
The invention provides a network appliance that is capable of remote booting and is capable of obtaining its configuration information from a source located far away. The network appliance can be shipped to a business location or office environment without requiring a local boot server in that location or environment and without requiring the presence of a person who is familiar with and highly skilled in configuring the appliance.
The invention can avoid a major cost of owning and operating a network appliance on an ongoing basis, by avoiding the possibility that someone trustworthy and knowledgeable has to keep the configuration of the network appliance stored somewhere, e.g., in a notecard, in a desk drawer, or on some other computer, so that the configuration of the network appliance can be adjusted to improve the configuration. If the network appliance breaks, is moved, or has to be replaced, there is no need for anybody to take the configuration saved in a desk drawer or elsewhere and to put the configuration back in the appliance, which is especially important if there is a discrepancy in the configuration of the network appliance because someone in the meantime had changed the configuration but hadn""t updated the backup copy.
Also, the invention allows for booting and the obtaining of configuration information, and therefore allows for the functioning of the appliance, regardless of whether there is a local server in the local network environment, such as a DHCP server or a boot server, that has been set up and configured to provide to the appliance the booting and configuration information it requires. Whether there is a boot server or a DHCP server in the local environment or not, the appliance can successfully boot and select a set of network parameters. For example, the appliance can obtain the address of the router, without which the appliance would not be able to communicate into the Internet and could communicate only within the local area network. Furthermore, the appliance is able to communicate with a far-away appliance registry and thereby obtain much more comprehensive configuration information for the appliance. Thus, the invention allows for the easy provision of extensive configuration information to the appliance.
Self-organizing distributed appliances (SODAs) according to the invention augment the Internet by providing a self-organizing network that efficiently distributes big data items, i.e., data items that cannot be downloaded timely (on demand) over today""s networks. One application of self-organizing distributed appliances is the distribution of high-quality video (a half-hour MPEG-1 movies is about one Gbyte). The SODA network distributes videos on off-peak hours to self-organizing distributed appliances that are close to clients. When a client requests a video, the client request is redirected to the closest appliance and the video is played from that appliance. The SODA network alleviates network bottlenecks.